今日內容:陣列、調整陣列大小、陣列中的搜尋、varargs、二維陣列
看起來不同的是宣告時[]的位置,C, C++是放在變數名稱後面,Java則是放在資料型態後面
且Java的[]不能直接輸入數值,需要使用new關鍵字才能建立固定陣列大小的物件
int[] nums = {1, 2, 3};
for(int i=0; i<nums.length; ++i){ // 陣列大小用 .length (無論甚麼資料型態都可以)
System.out.println(nums[i]);
}
/*
1
2
3
*/
// 也可以用enhanced for
for(int num : nums){
System.out.println(num);
}
如果想要使用sort或binarySearch這些內建的函式:
import java.util.Arrays;
// 一樣使用上面的nums陣列 直接進行排序
Arrays.sort(nums);
Arrays.fill(nums, 4);
// 會將全部的陣列數值都改成4
你可以先宣告一個沒有大小的陣列,隨後再依照使用者的輸入調整大小
String[] food;
int size;
size = scanner.nextInt();
food = new String[size]; // 這裡要用new設定出一塊新的記憶體給他
或者是直接指定出需要多少的空間給他
String[] food = new String[10];
可以使用最簡單的線性搜尋(linear search),或者是寫二元(binary search),也可以用util.Arrays裡面的binarySearch();
int, double, char, bool 進行比較時可以使用 == 進行判斷
如果是String 則可以用 .equals() 函式
避免創建很多重名的overloaded methods
我們可以在傳入的參數中,資料型態後面加三個點
這樣系統會自動將要傳入的資料轉換成array的形式
public static void main(String[] args){
System.out.println(add(1, 2, 3)); // 6
System.out.println(add(4, 5, 6, 7, 8, 9, 10)) // 49
}
static int add(int... nums){
int sum = 0;
for(int num : nums){
sum += num;
}
return sum;
}
也是一樣的方式和邏輯
使用時可以用row和column去思考
int[][] num = {{0, 1}, {2, 3}};
/*
0 1
2 3
*/
今天是學習Java基本語法的第四天,目前感覺起來好像很常用到 new 這個關鍵字,或許跟Java的OOP有關係,可能過幾天就能夠更理解Java了。
今天也是快樂學習的一天,明天繼續!